package top.ddandang.blog.filter;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.SignatureException;
import top.ddandang.blog.utils.RedisUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import top.ddandang.blog.utils.TokenUtil;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * Token拦截器（去除了token拦截
 * </p>
 *
 * @author D
 * @version 1.0
 * @date 2020/7/14 9:13
 */
@Slf4j
public class TokenInterceptor implements HandlerInterceptor {
//
//    @Resource
//    private RedisUtil redisUtil;
//
//    @Resource
//    TokenUtil tokenUtil;
//
//    private static String LOGIN_URI = "/user/userLogin";
//
//    private static String PERSONAL_INFO_URI = "/personal-info/getPersonalInfo";
//
//    private static String CATEGORIES_URI = "/categories/allCategories";
//
//    private static String TAGS_URI = "/tags/allTags";
//
//    private static String ARTICLE_URI = "/article/listIndexVo";
//
//    private static String JUDGE_USER_URI = "/user/judgeUser";
//
//    private static String INSERT_USER_URI = "/user/insertUser";
//
//    private static List<String> urlList = new ArrayList<>(7);
//
//    public TokenInterceptor() {
//        urlList.add(LOGIN_URI);
//        urlList.add(PERSONAL_INFO_URI);
//        urlList.add(CATEGORIES_URI);
//        urlList.add(TAGS_URI);
//        urlList.add(ARTICLE_URI);
//        urlList.add(JUDGE_USER_URI);
//        urlList.add(INSERT_USER_URI);
//        System.out.println(urlList);
//    }
//
//    @Override
//    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//
//        String token = request.getHeader("Authentication-Token");
//        log.error("token = " + token);
//        System.out.println(request.getRequestURI());
//        String url = request.getRequestURI();
//        if (urlList.contains(url)) {
//            log.info("进来了属于这个");
//            return true;
//        }
//        //处于登录状态
//        if(!"".equals(token) && token != null) {
//            log.error("进来了");
//            try {
//                Claims claims = tokenUtil.parseJwt(token);
//                return true;
//            } catch (ExpiredJwtException | IllegalArgumentException | SignatureException e) {
//                e.printStackTrace();
//                response.setStatus(520);
//                return false;
//            }
//        }
//        return false;
//    }
//
//    @Override
//    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
//    }
//
//    @Override
//    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
//
//    }
}
